/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.example.android.newsreader; import android.content.res.Configuration; import android.os.Bundle; import android.support.v4.app.FragmentActivity; /** * Activity that displays a particular news article onscreen. * * This activity is started only when the screen is not large enough for a two-pane layout, in * which case this separate activity is shown in order to display the news article. This activity * kills itself if the display is reconfigured into a shape that allows a two-pane layout, since * in that case the news article will be displayed by the {@link NewsReaderActivity} and this * Activity therefore becomes unnecessary. */ public class ArticleActivity extends FragmentActivity { // The news category index and the article index for the article we are to display int mCatIndex, mArtIndex; /** * Sets up the activity. * * Setting up the activity means reading the category/article index from the Intent that * fired this Activity and loading it onto the UI. We also detect if there has been a * screen configuration change (in particular, a rotation) that makes this activity * unnecessary, in which case we do the honorable thing and get out of the way. */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mCatIndex = getIntent().getExtras().getInt("catIndex", 0); mArtIndex = getIntent().getExtras().getInt("artIndex", 0); // If we are in two-pane layout mode, this activity is no longer necessary if (getResources().getBoolean(R.bool.has_two_panes)) { finish(); return; } // Place an ArticleFragment as our content pane ArticleFragment f = new ArticleFragment(); getSupportFragmentManager().beginTransaction().add(android.R.id.content, f).commit(); // Display the correct news article on the fragment NewsArticle article = NewsSource.getInstance().getCategory(mCatIndex).getArticle(mArtIndex); f.displayArticle(article); } }